PostgreSQL 高可用 PGPOOL-II 源码安装与配置
1 背景知识
本文主要介绍如何在 3
节点的机器下使用源码编译的方式部署 PGPOOL-II。
1.1 PGPOOL-II 集群节点规划
IP 地址 | 操作系统版本 | 角色 | 主机名 |
---|---|---|---|
192.168.10.191 | VIP | VIP | |
192.168.10.192 | Alma Linux 8.8 | PostgreSQL Master | node1 |
192.168.10.193 | Alma Linux 8.8 | PostgreSQL Standby | node2 |
192.168.10.194 | Alma Linux 8.8 | PostgreSQL Standby | node3 |
1.2 PGPOOL-II 版本和端口规划
组件 | 值 | 说明 |
---|---|---|
Pgpool-II 版本 | 4.4.4 | - |
port | 9999 | pgpool-II 提供对外数据库连接。 |
9898 | PCP 进程的连接。 | |
9000 | watchdog 接收连接的端口。 | |
9694 | watchdog 用于发送心跳信息的端口。 | |
配置文件 | /usr/local/pgpool/etc/pgpool.conf | Pgpool-II 配置文件。 |
Pgpool-II 启动用户 | postgres(pgpooll 4.1 版本之后) | |
Runing mode | 流复制模式 | |
Watchdog | on | 健康和心跳检查。 |
1.3 PGPOOL-II 变量和脚本规划
功能 | 脚本位置 | 说明 |
---|---|---|
Failover | /usr/local/pgpool/etc/failover.sh.sample | failvoer_command 运行失败切换的脚本模版。 |
/usr/local/pgpool/etc/follow_primary.sh.sample | failvoer_primarycommand 将备库指向新的主节点。 | |
Online recovery | /usr/local/pgpool/etc/recovery_1st_stage.sample | recovery_1st_stage_command 当备节点失败后,自动恢复。 |
/usr/local/pgpool/etc/pgpool_remote_start.sample | recovery_1st_stage_command 启动一个备节点。 | |
Watchdog | /usr/local/pgpool/etc/escalation.sh.sample | wd_escalation_command 安全的切换主备。 |
2 安装 PostgreSQL 数据库
请参考 PostgreSQL16。
3 搭建流复制
请参考搭建流复制
服务器已打好快照 STREAM INSTALL
,从这里开始配置 PGPOOL-II
高可用组件。
4 PGPOOL-II操作系统环境
请参考 PGPOOL-II 环境需求
快照为 PGPOOL-II ENV
。
5 PGPOOL-II 安装
Warning
无特殊说明,以下操作需要在所有节点下执行。
5.1 下载 pgpool-II 源码
su - postgres
cd /soft
wget https://www.pgpool.net/mediawiki/download.php?f=pgpool-II-4.4.4.tar.gz -O pgpool-II-4.4.4.tar.gz
tar -zxf *pgpool-II-*.tar.gz
cd pgpool-II-*/
5.2 解压源文件,执行 configure 脚本
./configure --prefix=/usr/local/pgsql --with-openssl --with-pam --with-memcached=memcacehd
5.3 编译 PGPOOL-II 并安装
make -j 8 && make install
5.4 安装 pgpool_recovery
1、编译与安装。
cd /soft/pgpool-II-4.4.4/src/sql/pgpool-recovery
make && make install
2、加载插件。
Warning
只在 Master 节点执行。
psql template1
CREATE EXTENSION pgpool_recovery;
\c postgres
CREATE EXTENSION pgpool_recovery;
\c testdb
CREATE EXTENSION pgpool_recovery;
5.5 安装 pgpool-regclass
1、编译和安装。
cd /soft/pgpool-II-4.4.4/src/sql/pgpool-regclass
make && make install
2、加载插件。
Warning
只在 Master 节点执行。
psql template1
CREATE EXTENSION pgpool_regclass;
\c postgres
CREATE EXTENSION pgpool_regclass;
\c testdb
CREATE EXTENSION pgpool_regclass;
5.6 创建 insert_lock table (option)
1、若不使用 快照隔离模式 与 本地复制模式时,可跳过此步骤。
2、若使用 快照隔离模式 与 本地复制模式时,需要配置 insert_lock
table。
Warning
只在 Master 节点执行。
cd /soft/pgpool-II-4.4.4/src/sql
psql -Upostgres -dtemplate1
\i insert_lock.sql
\c postgres
\i insert_lock.sql;
\c testdb
\i insert_lock.sql;